[<<Previous Entry] [^^Up^^] [Next Entry>>] [Menu] [About The Guide]
Int 2F Fn 1607  - MS Windows - "dosmgr" Virtual Device API                 [D]

   AX = 1607h
   BX = 0015h (VxD identifier of "DOSMGR")
   CX = function
       0000h query instance processing
       DX = 0000h

       Return: CX = state
               0000h not instanced
               other instanced (DOS 5+ kernel returns 0001h)
               DX = segment of DOS drivers or 0000h for
                   default of 0070h
               ES:BX -> patch table (see below)
       0001h set patches in DOS
       DX = bit mask of patch requests
           bit 0 enable critical sections
           bit 1 NOP setting/checking user ID
           bit 2 turn INT 21/AH=3Fh on STDIN into polling loop
           bit 3 trap stack fault in "SYSINIT" to WIN386
           bit 4 BIOS patch to trap "Insert disk X:" to WIN386

       Return: AX = B97Ch
           BX = bit mask of patches applied
           DX = A2ABh
       0002h remove patches in DOS (ignored by DOS 5.0 kernel)
       DX = bit mask of patch requests (see function 0001h)
       0003h get size of DOS data structures
       DX = bit mask of request (only one bit can be set)
           bit 0: Current Directory Structure size

       Return: if supported request:
               AX = B97Ch
               CX = size in bytes of requested structure
               DX = A2ABh
           else:
               all registers preserved
       0004h determine instanced data structures

       Return: AX = B97Ch if supported
           DX = A2ABh if supported (DOS 5+ kernel returns 0000h)
           BX = bit mask of instanced items
               bit 0: CDS
               bit 1: SFT
               bit 2: device list
               bit 3: DOS swappable data area
       0005h get device driver size
       ES = segment of device driver

       Return: DX:AX = 0000h:0000h on error (not dev. driver segment)
           DX:AX = A2ABh:B97Ch if successful
               BX:CX = size of device driver in bytes

Notes: DOSMGR (DOS Manager) will check whether the OEM DOS/BIOS data has
     been instanced via this API and will not perform its own default
     instancing of the normal DOS/BIOS data if so; if this API is not
     supported, DOSMGR will also try to access instancing data through
     INT 2F/AX=1603h
   these functions are supported by the DOS 5+ kernel; DOSMGR contains
     tables of instancing information for earlier versions of DOS
   see Geoff Chappell's book _DOS_Internals_ for additional discussions of
     DOSMGR's behavior and instancing in general

See Also: AX=1603h,AX=1605h,AX=1607h/BX=000Ch,AX=1607h/BX=0014h,AX=1684h

Format of patch table:
Offset Size    Description
 00h  2 BYTEs  DOS version (major, minor)
 02h   WORD    offset in DOS data segment of "SAVEDS"
 04h   WORD    offset in DOS data segment of "SAVEBX"
 06h   WORD    offset in DOS data segment of InDOS flag
 08h   WORD    offset in DOS data segment of User ID word
 0Ah   WORD    offset in DOS data segment of "CritPatch" table to enable
       critical section calls (see INT 2A/AH=80h)
 0Ch   WORD    (DOS 5+ only) offset in DOS data segment of "UMB_HEAD",
       containing segment of last MCB in conventional memory

This page created by ng2html v1.05, the Norton guide to HTML conversion utility. Written by Dave Pearson